import axios from "axios"
import {Toast} from 'mint-ui'
import Router from '@/router/index'

// baseURL: "https://gee.tunnel.echomod.cn/coolpal-home/"

const login = axios.create({
  baseURL: "http://47.75.173.85/DFC-home/"
})


// 拦截配置
login.interceptors.request.use((config) => {
  //如果token清空了，就跳转到登录界面


  //判断登录状态
  if(config['isToken'] && config['method'] == 'get') {
    // 如果get方式的参数不存在，就默认为空对象
    if(!config['params']) {
      config['params'] = {}
    }
    config['params']['token'] = localStorage.getItem('token')
  } else if (config['isToken'] && config['method'] == 'post') {
    config['data'].append('token', localStorage.getItem('token'))
  }
  return config
})

// 响应拦截
login.interceptors.response.use( res => {
  /**
   * 如果是异常，则返回了对象，反之返回了字符串
   */

  if(typeof res.data == "object" && res.data.statusCode != "0000") {
    Toast({
      message: res.data.errorMsg,
      duration: 1500
    })

    // 登录失效就跳转到登录界面
    if(res.data.statusCode == "20039") {
      Router.replace({name: "login"})
    }
    return Promise.reject(res)
  } else {
    try {
      return JSON.parse(res.data)
    } catch (e) {
      console.log('error=', e)
      console.log('res=', res)
    }

  }
}, error => {
   // 统一错误提示处理
  if (error.response.status === 404) {
    Toast({
      message: "请求不存在"
    })
  }
  if(error.response.status === 403) {
    Toast({
      message: "参数缺失"
    })
  }

  if(error.response.status === 401) {
    Toast({
      message: "权限不足"
    })
  }

  if(/5[0-9][0-9]{1}/.test(error.response.status)) {
    Toast({
      message: "登录失效"
    })
    Router.replace({name: "login"})
  }
  return Promise.reject(error.response.data)
})

export default login
